// 正确导入顺序：先导入dayjs核心库，再导入插件
import dayjs from 'dayjs'
import utc from 'dayjs/plugin/utc'
import timezone from 'dayjs/plugin/timezone'
import wxpaylogo from '@/assets/img/wxpaylogo.png' // 确保图片路径正确

// 初始化dayjs插件
dayjs.extend(utc)
dayjs.extend(timezone)
dayjs.tz.setDefault('Asia/Shanghai')

// 状态映射表
const STATUS_MAP = {
  1: { text: '待付款', type: 'warning' },
  2: { text: '待发货', type: 'primary' },
  3: { text: '待收货', type: 'info' },
  4: { text: '待评价', type: 'success' },
  5: { text: '成功', type: 'success' },
  6: { text: '失败', type: 'danger' }
}

// 通用格式化方法
const createFormatter = (map, defaultValue = '未知') =>
  (_, __, value) => map[value]?.text || defaultValue

export const tableOption = {
  searchMenuSpan: 6,
  columnBtn: false,
  border: true,
  index: false,
  selection: false,
  indexLabel: '序号',
  stripe: true,
  menuAlign: 'center',
  menuWidth: 0,
  align: 'center',
  refreshBtn: false,
  searchSize: 'mini',
  addBtn: false,
  editBtn: false,
  delBtn: false,
  viewBtn: false,

  props: {
    label: 'label',
    value: 'value'
  },
  column: [
    // 基础信息列
    { label: '订单ID', prop: 'orderId', minWidth: 120 },
    { label: '店铺ID', prop: 'shopId', minWidth: 100 },
    { label: '产品名称', prop: 'prodName', minWidth: 150 },
    { label: '用户ID', prop: 'userId', minWidth: 100 },
    {
      label: '订单编号',
      prop: 'orderNumber',
      search: true,
      minWidth: 180
    },

    // 金额相关列
    {
      label: '总价',
      prop: 'total',
      align: 'right',
      formatter: (_, __, value) => `¥${Number(value).toFixed(2)}`
    },
    {
      label: '实际总价',
      prop: 'actualTotal',
      align: 'right',
      formatter: (_, __, value) => `¥${Number(value).toFixed(2)}`
    },

    // 支付类型列配置
    {
      label: '支付类型',
      prop: 'payType',
      slot: true,
      headerAlign: 'center',
      cellStyle: {
        padding: '0 !important',
        height: '100%'
      },
      headerCellStyle: {
        padding: '0 !important'
      },
      minWidth: 80
    },

    // 状态列
    {
      label: '状态',
      prop: 'status',
      formatter: createFormatter(STATUS_MAP),
      component: 'tag',
      props: row => ({
        type: STATUS_MAP[row.status]?.type || 'info',
        effect: 'light'
      }),
      minWidth: 100
    },

    // 时间相关列（关键修复部分）
    {
      label: '创建时间',
      prop: 'createTime',
      width: 160,
      formatter: (_, __, timestamp) => {
        return timestamp ? dayjs(timestamp).tz().format('YYYY-MM-DD HH:mm') : '--'
      }
    },
    { // 修复多余逗号
      label: '支付时间',
      prop: 'payTime',
      width: 160,
      formatter: (_, __, timestamp) => {
        return timestamp ? dayjs(timestamp).tz().format('YYYY-MM-DD HH:mm') : '--'
      }
    },

    // 其他状态列
    {
      label: '是否支付',
      prop: 'isPayed',
      formatter: (_, __, value) => value === true ? '已支付' : '未支付',
      component: 'tag',
      props: row => ({
        type: row.isPayed === 1 ? 'success' : 'danger'
      })
    },
    {
      label: '删除状态',
      prop: 'deleteStatus',
      formatter: (_, __, value) =>
        ['未删除', '回收站', '永久删除'][value] || '未知状态'
    },

    // 简化展示的列
    { label: '配送类型', prop: 'dvyType', showOverflow: true },
    { label: '运费金额', prop: 'freightAmount', align: 'right' },
    { label: '产品数量', prop: 'productNums', align: 'center' }
  ] // 确保数组正确闭合
}
